Timm Bäder [Sat, 10 Aug 2019 17:36:56 +0000 (19:36 +0200)]
iconcache: ref textures
We can't just assume that the pointer we'se using as a cache key will
stay unique forever. The texture might be freed, and a later allocated
texture might have the same addres now, causing the cache to return
incorrect results.
Timm Bäder [Sat, 10 Aug 2019 13:29:22 +0000 (15:29 +0200)]
iconcache: Replace broken debugging code
Timm Bäder [Sat, 10 Aug 2019 12:47:02 +0000 (14:47 +0200)]
testsuite: Add a repeat node test case
Timm Bäder [Sat, 10 Aug 2019 12:45:45 +0000 (14:45 +0200)]
gl renderer: Implement a subset of repeat nodes
Timm Bäder [Sat, 10 Aug 2019 07:14:13 +0000 (09:14 +0200)]
treeview: Redo tree line drawing using textures
Gets rid of the remaining cairo nodes used for line drawing.
Timm Bäder [Sat, 10 Aug 2019 06:49:45 +0000 (08:49 +0200)]
treeview: Redo grid line drawing using textures
The cairo pattern in use was simple enough, so just use a 2×1 or 1×2
texture to draw horizontal and vertical grid lines. This avoids a bunch
of cairo nodes (that can't be cached by the renderers).
Timm Bäder [Sat, 10 Aug 2019 06:43:44 +0000 (08:43 +0200)]
snapshot: Annotate child_bounds parameter of push_repeat as nullable
Timm Bäder [Sat, 10 Aug 2019 06:09:36 +0000 (08:09 +0200)]
treeview: Shorten destroy() implementation
Timm Bäder [Fri, 9 Aug 2019 18:22:01 +0000 (20:22 +0200)]
treeview: Remove two _dashes members
Tree lines and grid lines always look the same these days.
Timm Bäder [Fri, 9 Aug 2019 18:01:43 +0000 (20:01 +0200)]
treeview: Remove GTK_TREE_VIEW_FOREGROUND_LINE
Timm Bäder [Fri, 9 Aug 2019 17:45:36 +0000 (19:45 +0200)]
spinbutton: Remove an unnecessary queue_draw() call
Timm Bäder [Fri, 9 Aug 2019 17:36:01 +0000 (19:36 +0200)]
scale: Properly update when inverted
Just queue_resize()ing the range itself doesn't work as it will just
re-allocate all the child widgets (i.e. just the trough) to its old
position and size.
Timm Bäder [Fri, 9 Aug 2019 17:24:32 +0000 (19:24 +0200)]
scale: Make a function shorter
Timm Bäder [Fri, 9 Aug 2019 17:20:57 +0000 (19:20 +0200)]
range: Remove outdated comment
Timm Bäder [Sat, 10 Aug 2019 13:39:47 +0000 (13:39 +0000)]
Merge branch 'wip/sadiq/buildable-2080' into 'master'
builderparser: Allow bind-source without bind-property
Closes #2080
See merge request GNOME/gtk!1047
Mohammed Sadiq [Thu, 8 Aug 2019 01:51:08 +0000 (07:21 +0530)]
Add builder tests for bind-source without bind-property
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2080
Mohammed Sadiq [Wed, 7 Aug 2019 02:12:03 +0000 (07:42 +0530)]
builderparser: Allow bind-source without bind-property
This allow users to bind same property of two objects with only
specifing “name” and “bind-source” in UI file.
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2080
Daniel Șerbănescu [Sat, 10 Aug 2019 07:25:36 +0000 (07:25 +0000)]
Update Romanian translation
Mohammed Sadiq [Sat, 10 Aug 2019 06:41:13 +0000 (12:11 +0530)]
widget: Fix a typo in documentation
Christian Hergert [Fri, 9 Aug 2019 19:52:16 +0000 (12:52 -0700)]
textview: clear cached entries before releasing containers
We want to ensure all of the display cache entries are released in the
normal fashion before releasing the structures so that we can maintain
the invariant that cache_iter will always exist while in the cache.
Timm Bäder [Fri, 9 Aug 2019 15:04:58 +0000 (17:04 +0200)]
treeviewcolumn: Remove cell_area parameter from _cell_get_size
Fixes #297
Timm Bäder [Fri, 9 Aug 2019 13:55:38 +0000 (15:55 +0200)]
iconhelper: Don't snapshot 0 sized icons
This is happening for me when snapshotting small thumbnails in the file
chooser. The GtkScaler will scale the 1px height/width by 2, resulting
in nothing being drawn at all.
Timm Bäder [Fri, 9 Aug 2019 12:26:57 +0000 (14:26 +0200)]
scale: Fix value widget measurement
Since we set the size request of the label, the later measure()
call would return at least the size we set, making the size only ever
grow.
Timm Bäder [Fri, 9 Aug 2019 11:32:24 +0000 (13:32 +0200)]
scale: Replace format-value signal
There is no reason for this to be a signal, since multiple handlers
don't make sense anyway. It was also broken because the scale needs to
know when a signal handler is added so it can update the value
representation.
Replace the signal with a set_format_value_func function which allows us
to do that.
Fixes #113
Timm Bäder [Fri, 9 Aug 2019 10:08:51 +0000 (12:08 +0200)]
range: remove range_size_request vfunc
It's unneeded in GtkScale and named after the gtk2 size_request function
Timm Bäder [Fri, 9 Aug 2019 08:35:10 +0000 (10:35 +0200)]
scale: Allocate left marks next to trough
Timm Bäder [Fri, 9 Aug 2019 08:33:52 +0000 (10:33 +0200)]
testscale: Properly call gtk_main_quit
Timm Bäder [Fri, 9 Aug 2019 08:33:43 +0000 (10:33 +0200)]
scale: Fix an uninitialized value
Timm Bäder [Wed, 7 Aug 2019 17:32:58 +0000 (19:32 +0200)]
widget: Avoid a few type checks
Aurimas Černius [Fri, 9 Aug 2019 11:21:11 +0000 (14:21 +0300)]
Updated Lithuanian translation
Timm Bäder [Thu, 8 Aug 2019 16:41:04 +0000 (16:41 +0000)]
Merge branch 'adwaita-scales-marks-fintune-fix-master' into 'master'
Adwaita: Fix fine-tune mode for scales with marks
Closes #1799
See merge request GNOME/gtk!696
Benjamin Otte [Thu, 8 Aug 2019 07:27:10 +0000 (07:27 +0000)]
Merge branch 'wip/gtk-icon-theme-no-svg-loader' into 'master'
gtk/icon-theme: Handle lack of SVG loader gracefully
Closes #2084
See merge request GNOME/gtk!1049
Jonas Ådahl [Wed, 7 Aug 2019 17:20:46 +0000 (19:20 +0200)]
gtk/icon-theme: Handle lack of SVG loader gracefully
When loading a SVG icon from a gresource file only containing SVG icons,
but without having a SVG loader available in gdk-pixbuf, we would crash
when trying to eventually load the resource. Fix this by gracefully
handling this by simply failing to load the icon, while the first time
it happens, log a warning.
Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2084
Timm Bäder [Wed, 7 Aug 2019 16:49:10 +0000 (18:49 +0200)]
Adwaita: Fix round titlebar button outline radius
Fixes #2073
frederik.feichtmeier [Thu, 1 Aug 2019 14:20:28 +0000 (10:20 -0400)]
Exclude appmenu titlebuttons
frederik.feichtmeier [Thu, 1 Aug 2019 14:09:52 +0000 (10:09 -0400)]
Make titlebuttons round
- use even sides for the titlebuttons so the result is a circle and not an ellipse
- add maximum border radius
- set min width/height to 0
- adjust margin and padding to match the previous look
Timm Bäder [Wed, 7 Aug 2019 12:09:33 +0000 (14:09 +0200)]
gesturelongpress: Add getter/setter for delay-factor
Timm Bäder [Wed, 7 Aug 2019 11:12:57 +0000 (13:12 +0200)]
passwordentry: Fix a documentation comment parameter name
Timm Bäder [Sun, 4 Aug 2019 12:37:49 +0000 (14:37 +0200)]
placessidebar: Remove popover using gtk_widget_unparent()
the gtk_widget_destroy() does not work anymore.
Timm Bäder [Sun, 4 Aug 2019 12:28:06 +0000 (14:28 +0200)]
adwaita: Increase spinbutton button styling specificity
So it trumps the 'toned down' button styling.
Fixes #2012
Matthias Clasen [Mon, 5 Aug 2019 12:20:06 +0000 (12:20 +0000)]
Merge branch 'implement-choices-file-chooser-native-win32-for-gtk-4' into 'master'
Implement choices for GtkFileChooserNativeWin32 [Gtk4]
Closes #1982
See merge request GNOME/gtk!1043
Jordi Mas [Mon, 5 Aug 2019 04:18:53 +0000 (06:18 +0200)]
Update Catalan translation
Jor Teron [Sun, 4 Aug 2019 18:24:49 +0000 (18:24 +0000)]
Add Karbi translation
Jor Teron [Sun, 4 Aug 2019 18:22:12 +0000 (18:22 +0000)]
Add Karbi translation
Christian Kirbach [Sun, 4 Aug 2019 16:16:01 +0000 (16:16 +0000)]
Update German translation
Luca Bacci [Tue, 16 Jul 2019 10:43:43 +0000 (12:43 +0200)]
GtkFileChooserNativeWin32: Uninitialize COM at end of thread
GtkFileChooserNativeWin32 is created and shown on a secondary thread.
This thread initializes COM support with CoInitializeEx but does not
finalize it, so we have a leak. Fix that by calling CoUninitialize()
before thread terminates.
See Merge Request !1043
Luca Bacci [Fri, 12 Jul 2019 08:21:50 +0000 (10:21 +0200)]
GtkFileChoooserNative: change prepend to append for insertions in choices list
Although slightly less efficient, keeping the order in the choices
list makes it easier for GtkFileChooserNative implementations to
add widgets in the order specified by the application.
See Merge Request !1043
Luca Bacci [Wed, 10 Jul 2019 13:21:01 +0000 (15:21 +0200)]
Implement choices for GtkFileChooserNativeWin32
See Merge Request !1043
Timm Bäder [Thu, 1 Aug 2019 14:26:43 +0000 (16:26 +0200)]
window: Remove some leftover event code
Timm Bäder [Thu, 1 Aug 2019 14:03:57 +0000 (16:03 +0200)]
popover: Use GTK_POS_BOTTOM as default position
This has always made a lot more sense.
Timm Bäder [Wed, 31 Jul 2019 14:55:12 +0000 (16:55 +0200)]
colorchooserwidget: Inherit from GtkWidget
No reason for this to be a GtkBox.
Timm Bäder [Tue, 30 Jul 2019 14:30:30 +0000 (16:30 +0200)]
supp: Add some more exceptions
Matthias Clasen [Fri, 2 Aug 2019 16:59:27 +0000 (16:59 +0000)]
Merge branch 'glsl-switch' into 'master'
glsl: don't use switch statements
See merge request GNOME/gtk!1036
Matthias Clasen [Thu, 1 Aug 2019 23:31:44 +0000 (23:31 +0000)]
Merge branch 'wip/sort-icons-by-size' into 'master'
window: sort icons before adding to _NET_WM_ICON
See merge request GNOME/gtk!1038
Ray Strode [Thu, 1 Aug 2019 20:28:00 +0000 (16:28 -0400)]
window: sort icons before adding to _NET_WM_ICON
When processing the list of icons for a window to add them to
_NET_WM_ICON gdk_x11_surface_set_icon_list only adds as many
icon sizes as will fit within X protocol limits.
It achieves this by keeping a running total of the number of
bytes taken up by icons already processed and bails as soon
as it goes over the limit.
The problem is, one 512x512 icon is already over the limit,
and so no icons will get added at all if the first icon in
list is 512x512.
Indeed, the code seems to assume the list is sorted from smallest
icon to biggest icon.
This commit changes the caller to sort the list.
Jordi Mas [Thu, 1 Aug 2019 18:19:06 +0000 (20:19 +0200)]
Update Catalan translation
Matthias Clasen [Thu, 1 Aug 2019 04:18:19 +0000 (00:18 -0400)]
Revert "gl: Simplify glyph cache rendering"
This reverts commit
7a3eaad1935d9a985ae8ece1973ca517c3b839b8.
The reason we want to keep using pango here
is that we get hex boxes and similar drawing
features that way.
Elias Aebi [Wed, 31 Jul 2019 16:48:54 +0000 (18:48 +0200)]
glsl: don't use switch statements
Matthias Clasen [Wed, 31 Jul 2019 12:26:16 +0000 (12:26 +0000)]
Merge branch 'glyph-cache-fixes' into 'master'
gl: Glyph cache fixes
See merge request GNOME/gtk!1034
Matthias Clasen [Wed, 31 Jul 2019 12:04:03 +0000 (08:04 -0400)]
Add missing includes
Matthias Clasen [Wed, 31 Jul 2019 02:21:52 +0000 (22:21 -0400)]
gl: Glyph cache fixes
Pass the full location to the glyph cache lookup,
and use the same rounding as cairo does. This makes
the output much closer to the cairo renderer.
Matthias Clasen [Tue, 30 Jul 2019 18:01:11 +0000 (14:01 -0400)]
Add an image comparison utility
This comes in handy sometimes, and we
already have the image diff code.
Daniel Mustieles [Tue, 30 Jul 2019 07:39:55 +0000 (09:39 +0200)]
Updated Spanish translation
Timm Bäder [Tue, 30 Jul 2019 05:05:45 +0000 (07:05 +0200)]
widget factory: add a tooltip to a button in a popover
Matthias Clasen [Mon, 29 Jul 2019 12:17:52 +0000 (12:17 +0000)]
Merge branch 'issue2057' into 'master'
Bump wayland-protocols requirements
See merge request GNOME/gtk!1030
Olivier Fourdan [Mon, 29 Jul 2019 09:34:09 +0000 (11:34 +0200)]
Bump wayland-protocols requirements
The `name` and `description` events were added to `xdg-output` protocol
in version 2 which is part of wayland-protocols 1.14.
In xdg-output-v1 version 3, the `xdg-output.done` event was deprecated
and the `xdg-output.description` event was made mutable, but that
doesn't change the actual events so we do not actually need to require
that version of xdg-output from wayland-protocols 1.18.
Update the wayland-protocols requirement to the bare minimum version,
which is 1.14.
https://gitlab.gnome.org/GNOME/gtk/issues/2057
Matthias Clasen [Sun, 28 Jul 2019 21:02:31 +0000 (21:02 +0000)]
Merge branch 'subpixel-positioning' into 'master'
Subpixel positioning
See merge request GNOME/gtk!1024
Matthias Clasen [Sun, 28 Jul 2019 20:29:31 +0000 (16:29 -0400)]
reftest: Exclude flaky tests
These depend on details of text rendering,
and started failing with newer pango.
Matthias Clasen [Sun, 28 Jul 2019 14:06:47 +0000 (10:06 -0400)]
gl: implement subpixel positioning
Pass the glyph position into the glyph caching functions,
not just the glyph index. This allows us to cache different
images for different subpixel positions.
Matthias Clasen [Thu, 25 Jul 2019 21:50:31 +0000 (17:50 -0400)]
vulkan: implement subpixel positioning
Pass the glyph position into the glyph caching functions,
not just the glyph index. This allows us to cache different
images for different subpixel positions.
Matthias Clasen [Sat, 28 Jul 2018 17:33:26 +0000 (13:33 -0400)]
Turn off metrics hinting
This will be necessary to see the effects of subpixel positioning.
Matthias Clasen [Sun, 28 Jul 2019 20:32:56 +0000 (20:32 +0000)]
Merge branch 'wip/chergert/textview-caching' into 'master'
textlayout: introduce caching for GtkTextLineDisplay
See merge request GNOME/gtk!1025
Christian Hergert [Fri, 26 Jul 2019 17:40:43 +0000 (10:40 -0700)]
textlayout: introduce caching for GtkTextLineDisplay
This adds a GtkTextLineDisplayCache which can be used to cache a number
of GtkTextLineDisplay (and thus, PangoLayout) while displaying a view.
It uses a GSequence to track the position of the GtkTextLineDisplay
relative to each other, a MRU to cull the least recently used display,
and and a direct hashtable to lookup display by GtkTextLine.
We only cache lines that are to be displayed (!size_only). We may want to
either create a second collection of "size_only" lines to speed that up,
or determine that it is unnecessary (which is likely the case).
Christian Hergert [Sat, 27 Jul 2019 01:04:34 +0000 (18:04 -0700)]
textiter: add _gtk_text_iter_same_line()
This is a faster form to compare two text iter to see if they are on the
same line.
Matthias Clasen [Sun, 28 Jul 2019 15:39:16 +0000 (11:39 -0400)]
inspector: Show the pango backend
Matthias Clasen [Sun, 28 Jul 2019 15:00:29 +0000 (11:00 -0400)]
Remove new attributes from tests
Until we can depend on pango 1.44, these will
fail in ci. Partially reverts
f1c7803f800588e
Matthias Clasen [Sun, 28 Jul 2019 14:50:14 +0000 (10:50 -0400)]
Add pango version checks
Seems the ci does not have pango 1.44 yet.
Matthias Clasen [Sun, 28 Jul 2019 13:53:10 +0000 (09:53 -0400)]
gl: Simplify glyph cache rendering
We are currently using a weird mix of pango and cairo,
but there is no need for us to go through a pango
renderer here; we can just use cairo directly.
Matthias Clasen [Sun, 28 Jul 2019 13:35:37 +0000 (09:35 -0400)]
gsk: Move text-related test out of ci
These are too sensitive to rendering differences
between renderers to run reliably in ci, but we
still want to keep them around. In particular,
the big glyph tests are useful to exercise the
GL glyph cache.
Timm Bäder [Sun, 28 Jul 2019 09:57:43 +0000 (11:57 +0200)]
glyph cache: Upload large glyphs in lookup () directly
Instead of relying on a texture id of 0, which can happen for other
reasons, e.g. when the glyph is being scaled too small.
Fixes part of #2046
Timm Bäder [Sun, 28 Jul 2019 08:58:10 +0000 (10:58 +0200)]
glyph cache: check glyphs for scaled size
We can't rely on just the ink_rect, since that might be without the
scaled applied, which is what ends up on the texture.
Fixes #2046
Timm Bäder [Sat, 27 Jul 2019 07:19:26 +0000 (09:19 +0200)]
textview: Remove some unnecessary gtk_widget_show() calls
Widgets are visible by default.
Jordi Mas [Sat, 27 Jul 2019 23:05:25 +0000 (01:05 +0200)]
Update Catalan translation
Matthias Clasen [Sat, 27 Jul 2019 21:46:52 +0000 (21:46 +0000)]
Merge branch 'overview-recursive-dependancy' into 'master'
overview.xml: The GTK library does not depend on the GTK library
See merge request GNOME/gtk!1026
Piotr Drąg [Sat, 27 Jul 2019 13:20:40 +0000 (15:20 +0200)]
Update Polish translation
Piotr Drąg [Sat, 27 Jul 2019 13:03:47 +0000 (15:03 +0200)]
Update POTFILES.skip
Дилян Палаузов [Sat, 27 Jul 2019 10:23:01 +0000 (10:23 +0000)]
overview.xml: The GTK library does not depend on the GTK library
The documentation stated:
GTK is a library.… GTK depends on the following libraries:
GTK The GTK library itself contains widgets, that is, GUI
components such as GtkButton or GtkTextView.
There is no point in stating, that the GTK library
depends on the GTK library.
Timm Bäder [Sat, 27 Jul 2019 05:57:06 +0000 (07:57 +0200)]
window: Unroot with old display
Things might rely on the old display being set while unrooting.
Fixes #2052
Matthias Clasen [Sat, 27 Jul 2019 04:02:08 +0000 (00:02 -0400)]
label: Parse new pango attributes
Support allow-breaks and show attributes.
These will be in pango 1.44
Matthias Clasen [Fri, 26 Jul 2019 17:13:39 +0000 (17:13 +0000)]
Merge branch 'xdg-output-v3-gtk4' into 'master'
wayland: Add xdg-output v3 support
See merge request GNOME/gtk!1022
Olivier Fourdan [Fri, 26 Jul 2019 15:07:58 +0000 (17:07 +0200)]
wayland: Add xdg-output v3 support
xdg-output v3 marks xdg-output.done as deprecated and compositors are
not required to send that event anymore.
So if the xdg-output version is 3 or higher, simply set the initial
value `xdg_output_done` to TRUE so we don't wait/expect that event
from the compositor.
https://gitlab.gnome.org/GNOME/gtk/issues/2053
Matthias Clasen [Fri, 26 Jul 2019 14:31:49 +0000 (14:31 +0000)]
Merge branch 'wip/no-move-surface' into 'master'
Remove surface moving APIs
See merge request GNOME/gtk!1016
Timm Bäder [Fri, 26 Jul 2019 14:27:39 +0000 (16:27 +0200)]
gl renderer: Fix dx/dy handling on hidpi
Fixes misplaced error squiggles in the node editor.
Timm Bäder [Fri, 26 Jul 2019 12:49:36 +0000 (14:49 +0200)]
gl renderer: Rework transform handling
Fix all the ref counting mishaps. Makes hidpi work again and without
memory leaks.
Kukuh Syafaat [Fri, 26 Jul 2019 11:31:46 +0000 (11:31 +0000)]
Update Indonesian translation
Kjartan Maraas [Fri, 26 Jul 2019 09:01:15 +0000 (09:01 +0000)]
Update Norwegian Bokmål translation
Daniel Mustieles [Fri, 26 Jul 2019 07:18:25 +0000 (09:18 +0200)]
Updated Spanish translation
Matthias Clasen [Fri, 26 Jul 2019 04:30:36 +0000 (00:30 -0400)]
font rendering demo: Make boxes optional
Matthias Clasen [Fri, 26 Jul 2019 03:35:09 +0000 (23:35 -0400)]
font rendering demo: Show unrounded extents
This makes more sense.
Matthias Clasen [Fri, 26 Jul 2019 02:06:34 +0000 (22:06 -0400)]
font rendering: Show ink rect too